package com.bos.dao.base;

import com.bos.utils.PageBean;
import org.hibernate.criterion.DetachedCriteria;

import java.io.Serializable;
import java.util.List;

/**
 * @author Administrator
 * @Description 持久层通用接口
 * @Param<T>
 */
public interface IBaseDao<T> {

    public void save(T entity);

    public void update(T entity);

    public void delete(T entity);

    public T findById(Serializable id);

    public List<T> findAll();

    /**
     * @param queryName 根据sql语句名称进行更新
     * @param objects  传入的参数*/
    public void executeUpdate(String queryName,Object ... objects);

    /**分页查询
     * */
    public void pageQuery(PageBean page);

    /**根据关联条件进行查询
     * */
    public List<T> findByCriteria(DetachedCriteria detachedCriteria);
}
